[%
<wizard>
	<page>
		<title>Select data type for the keys</title>
		<description>Select data type for the key values [of] the dictionary</description>
		<variable name="key_datatype"/>
	</page>	
	<page>
		<title>Select data type for the values</title>
		<description>Select data type for the values [of] the dictionary</description>
		<variable name="value_datatype"/>
	</page>	
</wizard>
%]Imports System
Imports System.Collections

Public Class [%<variable type="standard" name="filenamebase"/>%]
   Inherits DictionaryBase

   Default Public Property Item(key As [%<variable type="custom" name="key_datatype"/>%]) As [%<variable type="custom" name="value_datatype"/>%]
      Get
         Return CType(Dictionary(key), [%<variable type="custom" name="value_datatype"/>%])
      End Get
      Set
         Dictionary(key) = value
      End Set
   End Property

   Public ReadOnly Property Keys() As ICollection
      Get
         Return Dictionary.Keys
      End Get
   End Property

   Public ReadOnly Property Values() As ICollection
      Get
         Return Dictionary.Values
      End Get
   End Property

   Public Sub Add(key As [%<variable type="custom" name="key_datatype"/>%], value As [%<variable type="custom" name="value_datatype"/>%])
      Dictionary.Add(key, value)
   End Sub 'Add

   Public Function Contains(key As [%<variable type="custom" name="key_datatype"/>%]) As Boolean
      Return Dictionary.Contains(key)
   End Function 'Contains

   Public Sub Remove(key As [%<variable type="custom" name="key_datatype"/>%])
      Dictionary.Remove(key)
   End Sub 'Remove

End Class '[%<variable type="standard" name="filenamebase"/>%]
